package com.itheima._04字节字符转换流;

import java.io.*;

/**
    目标:字符输入转换流

    字节字符转换流：
        字符输入转换流（InputStreamReader）：可以解决不同编码读取文件乱码的问题。
        字符输出转换流（OutputStreamWriter）：可以指定编码写字符出去。
         字节流                                                    字符流
    字节输入流                字节输出流                    字符输入流           字符输出流
    InputStream             OutputStream                  Reader              Writer           (抽象类，只是类型)
    FileInputStream         FileOutputStream              FileReader          FileWriter       (实现类，真正使用的管道)
    BufferedInputStream     BufferedOutputStream          BufferedReader      BufferedWriter   (实现类，高级缓冲流)
                                                          InputStreamReader   OutputStreamWriter

    字符输入转换流（InputStreamReader）：可以解决不同编码读取文件乱码的问题。
    字符输入转换流创建对象:
        -- public InputStreamReader(InputStream is):可以以当前代码默认编码把字节流转换成字符流。
        -- public InputStreamReader(InputStream is,String charset):可以指定编码把字节流转换成字符流。
    小结：
       字符输入转换流（InputStreamReader）：可以解决不同编码读取文件乱码的问题。
 */
public class InputStreamReaderDemo02 {
    public static void main(String[] args) throws Exception {
        // 跟默认的字符输入流的功能是一样的，以当前默认代码编码把字节流转换成字符流。
//        Reader fr = new InputStreamReader(new FileInputStream("src/dlei.txt"));
        // 使用指定的编码把原始的字节流按照指定编码转换成字符流，这样就可以避免乱码！
        Reader fr = new InputStreamReader(new FileInputStream("D:\\itcast\\dlei.txt"),"GBK");
        BufferedReader br = new BufferedReader(fr);

        String line = null ;
        while((line = br.readLine())!=null){
            System.out.println(line);
        }
    }
}
